import axios from 'axios'

//通过axios创建对象
const request = axios.create({
    timeout: 5000
})

//request拦截器，可以对请求做一些处理
request.interceptors.request.use((config) => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8'
    return config
}, (error) => {
    return Promise.reject(error)
})

//response拦截器
//可以在调用接口响应后，统一的返回处理结果
request.interceptors.response.use(
    (response) => {
        //将返回的结果的data赋给 res，相当于做了一层提取。这样在获取数据到数据池时可以少写一层
        let res = response.data;
        //如果返回的是文件，就返回
        if (response.config.responseType === 'blob') {
            return res;
        } else if (typeof res === 'string') {   //如果返回的是字符串，转成json对象
            res = res ? JSON.parse(res) : res;
        }
        return res;
    }
)

//导出request对象，在其他文件使用
export default request